package org.jeecg.modules.prodorder.service;

import java.util.List;

import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.modules.prodorder.entity.ProductionOrderInfo;
import org.jeecg.modules.prodorder.vo.OpenBomVO;
import org.jeecg.modules.prodorder.vo.OpenProdOrderVO;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * @Description: 生产工单
 * @Date:   2021-09-09
 * @Version: V1.0
 */
public interface IProductionOrderInfoService extends IService<ProductionOrderInfo> {

	/**根节点父ID的值*/
	public static final String ROOT_PID_VALUE = "0";
	
	/**树节点有子节点状态值*/
	public static final String HASCHILD = "1";
	
	/**树节点无子节点状态值*/
	public static final String NOCHILD = "0";

	/**新增节点*/
	void addProductionOrderInfo(ProductionOrderInfo productionOrderInfo);
	
	/**修改节点*/
	void updateProductionOrderInfo(ProductionOrderInfo productionOrderInfo) throws JeecgBootException;
	
	/**删除节点*/
	void deleteProductionOrderInfo(String id) throws JeecgBootException;

	/**查询所有数据，无分页*/
    List<ProductionOrderInfo> queryTreeListNoPage(QueryWrapper<ProductionOrderInfo> queryWrapper);

    /**通过订单id查询拟生成的开单单列表*/
	List<OpenProdOrderVO> queryOpenListByOrderId(String orderId,String styleId);

	/**通过订单id查询物料分析列表*/
	List<OpenBomVO> queryBomListByOrderId(String orderId,String styleId);
	
	/**合并工单*/
	Integer mergeByIds(List<String> ids);

	/**通过订单id获取下一拆分页的字符串*/
	String getNextStartSn(String orderInfoId);

}
